Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

16 Stron V  « < 8 9 10 11 12 > »   
Reply to this topicStart new topic
> Bezpieczeństwo skryptów PHP, Jak zabezpieczyć się przed włamaniem
bełdzio
post
Post #181





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Cytat(Crozin @ 12.06.2009, 17:44:03 ) *
@bełdzio: A co jak ustawisz ID użytkownika, które nie istnieje? W przypadku gdy masz ustawione klucze obce w tabeli piękny błąd wywali.
Poza tym luki, które nawet potencjalnie są niegroźne powinny być szybko poprawiane.

1. wyslanie wiadomosci do nieistniejacego usera to nie luka
2. co za problem przechwycic blad i obsluzyc go? co za problem przed wyslaniem spr czy user istnieje? insert ignore? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Zgredzik
post
Post #182





Grupa: Zarejestrowani
Postów: 8
Pomógł: 2
Dołączył: 10.06.2009

Ostrzeżenie: (0%)
-----


Czesc, mam pytanie dotyczace tablicy $_POST. Wiec napisalem wyrazenie regularne ktorego uzywam w funkcji preg_match.
Kod
preg_match('#^[a-z0-9]{5,15}$#i',$_POST['dana'])

Wiec wyrazenie to sprawdza czy tablica $_POST['dana'] przechowuje wartosc alfanumeryczna o dlugosci od 5 do 15 znakow, funkcja zwraca false lub true w przypadku gdy zwroci true wartosc z tablicy POST chce umiescic w bazie danych. Czy ten preg_match uchroni mnie przed kazdym atakie z pola formularza o nazwie "dana"? Czy moze lepiej zastosowac ctype_alnum, strlen i po otrzymaniu TRUE bawic sie dalej z ta zmienna?

Bo tak na chlopski rozum to powinno bronic (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
cojack
post
Post #183





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Nie wiem było nie było, erix mnie już zbeształ że leniwy jestem i mi się szukać nie chce, to się odkupuje i kopie linkiem do funkcji zabezpieczającej przed atakami typu XSS:
http://snipplr.com/view/9596/secure-advanc...ip-tagsantixss/

pozdro.
Go to the top of the page
+Quote Post
nieraczek
post
Post #184





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

Ostrzeżenie: (0%)
-----


A mogę wiedzieć w czym ta funkcja _Strip_Tag() podana przez cojacka w linku i inne tego typu funkcje pisane w tym wątku mają być lepsze od rdzennej strip_tags() napisanej przez osoby zajmujące się rozwojem języka PHP - osoby z wieloletnim, olbrzymim doświadczeniem oraz wiedzą ? Czyli jak rozumiem uważacie, że Wasza własna funkcja strip_tags() będzie lepsza od tej opracowanej przez ekspertów PHP ?

Ten post edytował nieraczek 18.06.2009, 07:17:28
Go to the top of the page
+Quote Post
cojack
post
Post #185





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Nie rozumiesz... strip_tags usuwa znaczniki html, http://pl2.php.net/strip_tags
a ten link co ja podałem wywala nam dodatkowo encje z linków. skrypty js etc..
Go to the top of the page
+Quote Post
nieraczek
post
Post #186





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

Ostrzeżenie: (0%)
-----


A po co wywalać skrypty js skoro strip_tags() sprawia, że te skrypty - a właściwie już nie skrypty przestają być groźne, np.:
  1. <?php
  2. echo strip_tags("<script>alert('test')</script>");
  3. ?>

daje nam: alert('test')

  1. <?php
  2. echo strip_tags("<a href='test'>test</a>");
  3. ?>

daje nam: test

Nie bardzo widzę zwiększenia bezpieczeństwa.
Go to the top of the page
+Quote Post
erix
post
Post #187





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. <a href='test' onclick="alert('test');">test</a>

I Twoja teoria została obalona. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Chyba nie czytałeś tego wątku od początku...
Go to the top of the page
+Quote Post
nieraczek
post
Post #188





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

Ostrzeżenie: (0%)
-----


Nie bardzo rozumiem - zrobiłem specjalnie formularz żeby sprawdzić:
  1. <?php
  2. if(isset($_POST['przycisk']))
  3. {
  4. echo strip_tags($_POST['pole']);
  5. //echo $_POST['pole'];
  6. }
  7. ?>
  8.  
  9. <form action="index.php" method="post">
  10. <input name="pole" type="text" />
  11. <input name="przycisk" type="submit" />
  12. </form>


Bez uzycia strip_tags() dostaję link po kliknięciu na który wyskakuje mi alert, ALE po użyciu strip_tags() dostaję zwykły tekst 'test'. Więc ? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
Crozin
post
Post #189





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


IMO strip_tags to jedna z durniejszych funkcji. Ktoś coś wpisuje, patrzy... a tu część tekstu ucięta. Zdecydowanie lepiej użyć htmlspecialchars" title="Zobacz w manualu PHP" target="_manual.
Go to the top of the page
+Quote Post
nieraczek
post
Post #190





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

Ostrzeżenie: (0%)
-----


Ok Crozin - ale istnieje w końcu coś co obali moją teorię o tym, że nie trzeba zastępować strip_tags() swoją własną bezpieczniejszą funkcją w stylu strip_tags() czy nie ? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Wpisanie jakiego kodu w tym formularzu rozłożyłoby tę funkcję na łopatki ? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował nieraczek 18.06.2009, 17:44:42
Go to the top of the page
+Quote Post
kamil4u
post
Post #191





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


Zdecydowanie jestem za ~Crozin-em , więcej w tym wątku: http://forum.php.pl/index.php?showtopic=119475
Go to the top of the page
+Quote Post
nieraczek
post
Post #192





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

Ostrzeżenie: (0%)
-----


Ale chodzi o to, że w całym tym wątku co kilka postów ludzie próbują pisać własne wersje tych dwóch funkcji: htmlspecialchars() i strip_tags() i podają swoje wersje tych funkcji - chciałbym więc po prostu dowiedzieć się w czym ich własne funkcje są bezpieczniejsze od tych opracowanych przez ekspertów PHP (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
erix
post
Post #193





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Nie bardzo rozumiem - zrobiłem specjalnie formularz żeby sprawdzić:

Blah, pomyślałem o czym innym. [;
Go to the top of the page
+Quote Post
nieraczek
post
Post #194





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

Ostrzeżenie: (0%)
-----


"Blah, pomyślałem o czym innym. [; " - wiem o czym myślałeś, dlatego zrobiłem formularz ;] hehe (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Ten post edytował nieraczek 18.06.2009, 19:21:07
Go to the top of the page
+Quote Post
bełdzio
post
Post #195





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Cytat(nieraczek @ 18.06.2009, 18:53:30 ) *
Ale chodzi o to, że w całym tym wątku co kilka postów ludzie próbują pisać własne wersje tych dwóch funkcji: htmlspecialchars() i strip_tags() i podają swoje wersje tych funkcji - chciałbym więc po prostu dowiedzieć się w czym ich własne funkcje są bezpieczniejsze od tych opracowanych przez ekspertów PHP (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

tru tru (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) w zdecydowanej wiekszosci przypadkow pisanie wlasnych systemow filtracji nie sprawdza sie na polu walki :-) zawsze pominie sie 1 rzecz i cale zabezpieczenie idzie sie walic :-)

tak wiec tak gdzie jest to niewskazane, a nawet niezalecane lepiej nie wymyslac swoich tworow (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

kiedys zreszta pisalem o tym na blogu, ktorego jestem jedynym czytelnikiem http://www.beldzio.com/sens-tworzenia-wlas...temow-filtracji ;-)
Go to the top of the page
+Quote Post
WebCM
post
Post #196





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----


Cytat
ludzie próbują pisać własne wersje tych dwóch funkcji: htmlspecialchars() i strip_tags()
Napisałem na potrzeby skryptu CMS nakładkę na htmlspecialchars(), która zajmuje się jeszcze cenzurą słów - http://pastebin.pl/9298 - mam nadzieję, że to nie jest złe podejście. BTW nie implementuję zaawansowanych mechanizmów cenzury. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Co do strip_tags - webmasterzy często nadużywają tej funkcji. Wywołują ją zamiast htmlspecialchars() i myślą, że ich skrypt jest teraz bezpieczny. Kod HTML pochodzący z zewnątrz należy po prostu zamienić na encje. Funkcja czasami się jednak przydaje - gdy trzeba wyświetlić czysty tekst bez formatowania i bez kodu HTML.
Go to the top of the page
+Quote Post
cojack
post
Post #197





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Ale macie problemy, jak komuś jest potrzebne strip_tags to go użyje mi np do routingu jest potrzebny i go używam ile wlezie, w dodatku z joomli zakosiłem parę wyrażen regularnych, o to one (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

  1. <?php
  2. if(preg_match('/mosConfig_[a-zA-Z_]{1,21}(=|%3D)/',$strInput))
  3.            {
  4.                $strInput = preg_replace('/mosConfig_[a-zA-Z_]{1,21}(=|%3D)/','',$strInput);
  5.            }
  6.            if(preg_match('/base64_encode.*(.*)/',$strInput))
  7.            {
  8.                $strInput = preg_replace('/base64_encode.*(.*)/','',$strInput);
  9.            }
  10.            if(preg_match('/(<|%3C).*script.*(>|%3E)/',$strInput))
  11.            {
  12.                $strInput = preg_replace('/(<|%3C).*script.*(>|%3E)/','',$strInput);
  13.            }
  14.            if(preg_match('/GLOBALS(=|[|%[0-9A-Z]{0,2})/',$strInput))
  15.            {
  16.                $strInput = preg_replace('/GLOBALS(=|[|%[0-9A-Z]{0,2})/','',$strInput);
  17.            }
  18.            if(preg_match('/_REQUEST(=|[|%[0-9A-Z]{0,2})/',$strInput))
  19.            {
  20.                $strInput = preg_replace('/_REQUEST(=|[|%[0-9A-Z]{0,2})/','',$strInput);
  21.            }
  22. ?>


Śmiało, teraz mogą mi w gecie wsadzac co chcą, imo nie dadza rady.
Go to the top of the page
+Quote Post
Crozin
post
Post #198





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


A mnie zastanawia po jakie licho Ci preg_matche w tym.
Go to the top of the page
+Quote Post
legalizetrawka
post
Post #199





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 29.06.2009

Ostrzeżenie: (0%)
-----


Co wy na to, żeby zamiast backslashowania dane wysyłane do MySQL zakodować w base64 i w takiej postaci je trzymać w bazie? A przy wyświetlaniu odkodować i np. usunąć tagi html?

Ten post edytował legalizetrawka 20.07.2009, 12:46:50
Go to the top of the page
+Quote Post
Fifi209
post
Post #200





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Cytat(legalizetrawka @ 20.07.2009, 12:43:56 ) *
Co wy na to, żeby zamiast backslashować dane wysyłane do MySQL zakodować w base64 i w takiej postaci je trzymać w bazie? A przy wyświetlaniu odkodować i np. usunąć tagi html?


Tylko jaki ma to sens? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Po co kombinować ? Dasz backslashe i po sprawie. ;d
Go to the top of the page
+Quote Post

16 Stron V  « < 8 9 10 11 12 > » 
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.09.2025 - 03:19